from implement.layers.basic.model import Model


# 该模型是 Sequential 模型，用于按顺序组合多个层。前向传播时依次经过每个层。
class Sequential(Model):
    def __init__(self, *layers):
        """Sequential 模型的构造函数。

        Args:
            *layers: 由多个层组成的参数列表。
        """
        super().__init__()
        self.layers = []
        for i, layer in enumerate(layers):
            setattr(self, 'l' + str(i), layer)
            self.layers.append(layer)

    def forward(self, x):
        """Sequential 模型的前向传播。

        Args:
            x (ndarray): 输入数据。

        Returns:
            ndarray: 模型的输出。
        """
        for layer in self.layers:
            x = layer(x)
        return x

